{dialog.object}setListColumnsAndPopulate Method
Syntax
Arguments
- listId
The ID of the List Control.
- data
A JSON object defining the data used to populate the List.
- options
A JSON object with settings. Options can include:
- columnCount
The number of columns to create. For example, in a set of data with 50 columns, you may only want to show the first 5 columns in the List control.
- columns
An array listing the fields to use for the List columns. See example code below for using JSON syntax to customize columns and insert buttons.
- returnExpression
A JavaScript expression that defines what value to return from the List control for the selected row. This expression must prefix column names with 'data'. Eg, 'data.Firstname+" "+data.Lastname'
- showTitle
A true or false value. Defines whether or not column titles should be displayed.
- template
The Client-side Template used to render the List Layout. Only used if the List Layout is freeform.
Description
Dynamically sets the columns in a List and populates the List.
Discussion
The {dialog.object}.setListColumnsAndPopulate method dynamically sets the columns in a List control and populates the List with records defined in the data parameter. The columns are based on the columns in the first row of data. Note: To populate a List using a freeform template layout, use the {dialog.object}.setListTemplateAndPopulate method.
Example
var data = [ { "Firstname": "Kathy", "Lastname": "Morton", "City": "New York", "State": "NY" } ]; //populate the List with the first 3 columns in data var ops = {columnCount: 3}; {dialog.object}.setListColumnsAndPopulate('list',data,ops); //specify columns var ops = {columns: ['Firstname','State']}; {dialog.object}.setListColumnsAndPopulate('list',data,ops); //specify the List return value var ops = {columns: ['Firstname','State'], returnExpression: 'data.Firstname'}; {dialog.object}.setListColumnsAndPopulate('list',data,ops); //turn off column titles var ops = {showTitle: false}; {dialog.object}.setListColumnsAndPopulate('list',data,ops); //freeform layout var ops = {style: 'freeform', template: '{Firstname} {Lastname} {City}'}; {dialog.object}.setListColumnsAndPopulate('list',data,ops); //advanced mode - control column widths, headings and insert buttons (b1 and b2 are buttons in the initial List layout) var ops = { columns: [ {type:'field',name: 'Firstname', heading: 'First NAME', width: 'flex(2)'}, {type: 'button',name: 'b1'}, {type:'field',name: 'Lastname', heading: 'LAST NAME', width: 'flex(1)'}, {type: 'button',name: 'b2'}, {type:'field',name: 'State', heading: 'State Name', width: 'flex(.5)'} ] }; {dialog.object}.setListColumnsAndPopulate('list',data,ops);
See Also